package list;
import org.junit.Test;

import java.util.*;

/**
 * 链表实现集合 包位置:java.util
 * List接口实现 包位置:java.util
 * List接口集合--三个实现类:
 * ArrayList 与LinkedList
 */
public class LinkedListAPI {
    @Test
    public void testIndexOf(){
        //创建集合--双向链接集合
        List<String> list=new LinkedList<>();
        list.add("三吱");
        list.add("龙虎斗");
        list.add("螺蛳粉");
        list.add("汤");
        /**
         * ArrayList与LinkedList通用方法
         * indexOf() 返回值:int
         * 作用:返回指定元素在集合中第一次出现的索引位置
         * [理解:返回元素的下标位]
         *
         */
        int index=list.indexOf("汤");
        /**
         * LInkedLIst独有方法
         * Listindexof () 返回值:int
         * 作用:返回最后的元素在集合中出现的索引位置
         */
        int lastIndex=list.lastIndexOf(":汤");
        System.out.println("返回最后元素下标:"+lastIndex);
    }
/**
 * LInkedList独有方法
 * addFirst() 返回值:void
 * 作用:将指定元素添加至链表头部
 * addlast() 返回值:void
 * 作用:将指定元素添加至链表尾部
 * removeFirst()
 * removelast()
 *
 */
@Test
    public void testAR(){
    //创建集合--双向链接集合
    List<String> list=new LinkedList<>();
    list.add("三吱");
    list.add("龙虎斗");
    list.add("螺蛳粉");
    list.add("汤");
    //LInkedList独有方法
    ((LinkedList)list).addFirst("榴莲");
    ((LinkedList)list).addFirst("豆汁");
    System.out.println("双向链表:"+list);
    ((LinkedList)list).removeFirst();
    System.out.println();

}
}
